// DataLibrary FunctionPlugin - Flag

// 識別子：DL
// 内容  ：フラグ管理。

//----------------------------------------------------------------------------//
// Plugin
//----------------------------------------------------------------------------//

//-- プラグインの読み込み処理 --//
//DL_LoadFunction_Flag:
//Return


//-- プラグインの終了処理 --//
DL_UnloadFunction_Flag:
	If Count(LibraryConfig) = 0 Then
		UnSet LibraryConfig  // 一つも存在しない場合は削除しておく
	EndIf
Return


//----------------------------------------------------------------------------//
// Flag
//----------------------------------------------------------------------------//

//-- SetFlag data_id flag : 指定したDATA_IDのフラグを設定する --//
DL_SetFlag:
	Set LibraryFlag[Args(1)] Args(2)
Return


//-- UnSetFlag data_id : 指定したDATA_IDのフラグを削除する --//
DL_UnSetFlag:
	UnSet LibraryFlag[Args(1)]
Return


//-- SetFlagUnread data_id status : 指定したDATA_IDの未読状態を設定する --//
DL_SetFlagUnread:
	If DL_GetOptionValue("UnreadHighlight", 1) = 0 Then
		Return  // 未読の強調表示がOFFの場合は終了する
	EndIf
	If Not IsVarDefined(LibraryFlag[Args(1)]) Then
		Return
	EndIf
	If Args(2) = 0 Then
		Set LibraryFlag[Args(1)] List(LibraryFlag[Args(1)], 1)
	Else
		Set LibraryFlag[Args(1)] LIndex(LibraryFlag[Args(1)], 1)
	EndIf
Return


//-- GetFlag(data_id[, lib_id]) : フラグの値を返す --//
DL_GetFlag:
	If IsVarDefined(LibraryFlag[Args(1)]) Then
		Return LIndex(LibraryFlag[Args(1)], 1)
	ElseIf DL_GetLibDefaultFlag(Args(2)) > 0 Then
		Return DL_GetLibDefaultFlag(Args(2))
	EndIf
Return 0


//-- IsFlagUnread(data_id) : 指定したDATA_IDが未読なら1を返す --//
DL_IsFlagUnread:
	If DL_GetOptionValue("UnreadHighlight", 1) Then
		Return (LLength(LibraryFlag[Args(1)]) = 1)
	EndIf
Return 0


//----------------------------------------------------------------------------//
// Config
//----------------------------------------------------------------------------//

//-- SetConfig name value : コンフィグフラグを設定する --//
DL_SetConfig:
	If Not IsVarDefined(LibraryConfig) Then
		Global LibraryConfig  // セーブデータに記録する
	EndIf
	Set LibraryConfig[Args(1)] Args(2)
Return


//-- UnSetConfig name : コンフィグフラグを削除する --//
DL_UnSetConfig:
	UnSet LibraryConfig[Args(1)]
Return


//-- GetConfigValue(name[, value, option_name]) : コンフィグの値を返す --//
DL_GetConfigValue:
	If IsVarDefined(LibraryConfig[Args(1)]) Then
		Return LibraryConfig[Args(1)]
	EndIf                      
Return Args(2)


